Two specific new classes of storage devices have recently emerged as commodity storage devices that are becoming widely available and easily accessible: flash memory based Solid State Drives (SSDs), and cloud storage. Each of these is known in the art to be clearly differentiated in performance, and cost, from the rotating media hard disk drives prevalent for many years in computer storage systems. Each category of storage devices has its own particular strengths from a pure data storage perspective; for example, SSDs are fast, regular hard drives are cheap, and cloud storage is flexible. As currently used, different storage devices are accessible by a given computer system and interaction with that storage device is managed using distinct data flows. FIG. 1 illustrates a typical prior art system interacting with multiple classes of storage devices.
The differences in characteristics, performance, and cost between the different classes of storage devices are generally greater than the differences between various products or technologies within each class. As a result it is desirable to be able to manage data storage using all categories of storage devices as appropriate to make best use of each of their strengths. There is currently an emerging trend in the art to having SSDs act as caches for regular hard drives in storage systems, although the method of implementation is primitive and is designed on a per system basis with a simplified data flow between the regular hard drive and the SSD.
For some years now the idea of tiering—placing data on separate storage devices based on policy applied to the data—has been used to achieve business goals around data management, for example for cost efficiency, data retention, or regulatory compliance. For example all data might be archived, sensitive data might be encrypted, frequently used data might be kept near its users, etc. This kind of tiering used to be primarily differentiated by the storage devices or data storage systems used for the tiers.
The current solutions in the field of the invention are generally network based (appliances or Storage Area Networks) using block based caching and/or a fixed list of storage device (or storage service, in the case of Cloud Storage) options, such as that shown in FIG. 1.
While the prior art systems make use of the advantages of particular classes of storage devices, they are limited in their use by the interactions between the computer system and the specific storage device. Furthermore, at the application level, accommodations must often be made for data retrieval from different classes of storage devices. Furthermore, little, if any synergistic effects are realized from the different advantages of the different storage device classes, and thus, the prior art systems are limited to the physical manifestations of the storage devices as they would perform independently, irrespective of other different classes of storage devices in the system.
It is therefore an object of the invention to provide a novel system and method for providing a tiered cache structure to achieve benefits resulting from advantages of different classes of storage devices above those that could be realized in using these different classes of storage devices independently.